#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>

#define filename "log.txt"

int main()
{
    // 关于1号和2号
    fprintf(stdout, "hello stdout message\n");
    fprintf(stdout, "hello stdout message\n");
    fprintf(stdout, "hello stdout message\n");
    fprintf(stdout, "hello stdout message\n");
    fprintf(stdout, "hello stdout message\n");

    fprintf(stderr, "hello strerr message\n");
    fprintf(stderr, "hello strerr message\n");
    fprintf(stderr, "hello strerr message\n");
    fprintf(stderr, "hello strerr message\n");
    fprintf(stderr, "hello strerr message\n");
    
    
    // 输入重定向
    // 将原本从键盘文件中读取的=>从指定文件中读取
    // cat < log.txt
//    int fd = open(filename,O_RDONLY);
//    if(fd < 0)
//    {
//        perror("open");
//        return 1;
//    }
//    dup2(fd,0);
//    char inbuff[1024];
//    ssize_t s = read(0,inbuff,sizeof(inbuff)-1);
//    if(s > 0)
//    {
//        inbuff[s] = '\0';
//        printf("echo: %s\n",inbuff);
//    }
//    close(fd);

//    // close(1);
//    // echo "hello world">filename 
//    // int fd = open(filename, O_CREAT|O_WRONLY|O_TRUNC, 0666);
//    // 变成追加重定向了,echo "hello world" >> filename
//    int fd = open(filename, O_CREAT|O_WRONLY|O_APPEND, 0666);
//    if(fd < 0)
//    {
//        perror("open");
//        return 1;
//    }
//    
//    // 重定向
//    dup2(fd, 1);
//    close(fd);
//    printf("fd: %d\n",fd);
//    const char* msg = "hello world\n";
//    int cnt = 5;
//    while(cnt)
//    {
//        write(1, msg, strlen(msg));
//        cnt--;
//    }
//
//    close(fd);
    return 0;
}

